package com.example.david;

import java.util.ArrayList;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

	public class ImageAdapter extends BaseAdapter{

		private Context mContext;
		private Usuario usuario;
		private Integer[] imagens;
		private String nomeEmpresa;
		
		public ImageAdapter(Context mContext) {
			this.mContext = mContext;
			Detalhes dt = (Detalhes)mContext;
			this.usuario = dt.getUsuario();
			this.nomeEmpresa = dt.getNomeEmpresa();
			this.imagens = gerarImagens(usuario);
			System.out.println("Construtor terminado: " + usuario.getNome() + ", "+ nomeEmpresa);
		}

		
		//Integer[] imagens = gerarImagens(com.example.david.);
		
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return imagens.length;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return imagens[position];
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
	        ImageView imageView;
	        
	        if (convertView == null) {
	            imageView = new ImageView(mContext);
	            imageView.setLayoutParams(new GridView.LayoutParams(150, 150));
	            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
	            imageView.setPadding(8, 8, 8, 8); 
	        } else {
	            imageView = (ImageView) convertView;
	        }
	        
	        imageView.setImageResource(imagens[position]); 
	        
	        return imageView;
		}
		
		public Integer[] gerarImagens(Usuario pUsuario){
			ArrayList<Pontos> pontosdoUsuario = pUsuario.getPontosPorEmpresa(nomeEmpresa);
			int numeroPontos = pontosdoUsuario.size();
			System.out.println("Pontos do " +  pUsuario.getNome() + " para a empresa " + nomeEmpresa + ": " + numeroPontos);
			Integer[] imagens = new Integer[numeroPontos];
			
			for (int i = 0; i < numeroPontos; i++) {
				switch (pontosdoUsuario.get(i).getQuantidade()) {
				case 100:
					imagens[i] = R.drawable.pontos100;
					break;
				case 250:
					imagens[i] = R.drawable.pontos250;
					break;
				case 500:
					imagens[i] = R.drawable.pontos500;
					break;
				default:
					break;
				}
				
			}
			return imagens;
		}
		
		
	}